import WebIM from '../utils/WebIM';
import { toast } from "vant";
const Register = {
    state: {
        userId: -1,
        password: "",
        isRouterLoginPage: false
    },
    mutations: {
        // 将页面参数赋给全局模块Register参数
        setUserInfo(state, option) {
            state.userId = option.userId
            state.password = option.password
        },
        // 是否注册成功
        setIsRouterLoginPage(state, boo) {
            state.isRouterLoginPage = boo
        }
    },
    actions: {
        // 将注册页面的信息传入, 通过以下验证才可以注册成功
        isRegisterByVerification(context, payload) {
            if (!(/^1[0-9]{10}$/).test(payload.userId)) {
                toast.fail('手机号有误,请输入手机号')
                context.commit('setIsRouterLoginPage', false)
            } else if (payload.password == null) {
                toast.fail("密码不能为空,请重新输入密码");
                context.commit('setIsRouterLoginPage', false)
            } else if (payload.password.length < 6 || payload.password.length > 17) {
                toast.fail("密码不能小于6位或大于17位")
                context.commit('setIsRouterLoginPage', false)
            } else if (payload.password !== payload.rePassword) {
                toast.fail("密码前后不一致,请重新设置密码")
                context.commit('setIsRouterLoginPage', false)
            } else if ((/^1[0-9]{10}$/).test(payload.userId) && payload.password.length >= 6 && payload.password.length <= 17 && payload.password != null && payload.password == payload.rePassword) {
                let option = {
                    username: payload.userId,
                    password: payload.password,
                    appKey: WebIM.config.appkey,
                    success: function () {
                        toast.success("注册成功");
                        // 验证通过,注册成功,回传信息到注册页面,让页面跳转至登录页面
                        context.commit('setIsRouterLoginPage', true)
                        // 将信息传到全局模块中,修改全局模块Register的参数
                        context.commit('setUserInfo', payload);
                    },
                    error: function (err) {
                        // 注册失败,不跳转到登录页面
                        context.commit('setIsRouterLoginPage', false)
                        toast.fail("注册失败", err)
                        let errorData = JSON.parse(err.data);
                        if (errorData.error === 'duplicate_unique_property_exists') {
                            toast.fail('用户已存在！');
                        } else if (errorData.error === 'illegal_argument') {
                            if (errorData.error_description === 'USERNAME_TOO_LONG') {
                                toast.fail('用户名超过64个字节！')
                            } else {
                                toast.fail('用户名不合法！')
                            }
                        } else if (errorData.error === 'unauthorized') {
                            toast.fail('注册失败，无权限！')
                        } else if (errorData.error === 'resource_limited') {
                            toast.fail('您的App用户注册数量已达上限,请升级至企业版！')
                        }

                    },
                };
                // 将信息上传到服务器
                WebIM.conn
                    .registerUser(option);
            }


        },

    }
}
export default Register;
